package br.com.divulgaqui.managedbean;


import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;

import br.com.divulgaqui.client.PessoaJuridicaServiceBeanLocal;
import br.com.divulgaqui.client.exception.CNPJIgualException;
import br.com.divulgaqui.client.exception.EmailIgualException;
import br.com.divulgaqui.entity.PessoaJuridica;
import br.com.divulgaqui.entity.Telefone;
import br.com.divulgaqui.factory.PageFactory;

@ManagedBean
public class PessoaJuridicaManagendBean extends BaseBean {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 597090342018283463L;

	@EJB
	private PessoaJuridicaServiceBeanLocal pessoaJuridicaServiceBeanLocal;
	
	private PessoaJuridica pessoaJuridica = new PessoaJuridica();
	private String tipoPessoa;
	private Telefone telefone = new Telefone();
	
	public String salvarPessoa(){
			salvar(pessoaJuridica);
		
		return PageFactory.CADASTROPESSOA;
	}
	
	public void salvar(PessoaJuridica pessoaJuridicaBean){
		try {
			pessoaJuridicaServiceBeanLocal.salvar(pessoaJuridica);
			System.out.println(pessoaJuridica);
		} catch (EmailIgualException e) {
			addMensagem(FacesMessage.SEVERITY_ERROR, "Erro Email: E-mail já cadastrado", "E-mail já cadastrado");
			//TODO: Colocar msg no propeties
		} catch (CNPJIgualException e) {
			//TODO: Colocar msg no propeties
			addMensagem(FacesMessage.SEVERITY_ERROR, "Erro CNPJ: CNPJ já cadastrado", "CNPJ já cadastrado");
		}		
	}
	public PessoaJuridica getPessoaJuridica() {
		return pessoaJuridica;
	}
	public void setPessoaJuridica(PessoaJuridica pessoaJuridica) {
		this.pessoaJuridica = pessoaJuridica;
	}
	/**
	 * @return the tipoPessoa
	 */
	public String getTipoPessoa() {
		return tipoPessoa;
	}
	/**
	 * @param tipoPessoa the tipoPessoa to set
	 */
	public void setTipoPessoa(String tipoPessoa) {
		this.tipoPessoa = tipoPessoa;
	}
	public String addTelefone(){
		pessoaJuridica.getTelefones().add(new Telefone(String.valueOf(this.telefone.getNumero())));
		telefone = new Telefone();
	
	return PageFactory.CADASTROPESSOA;
}

	/**
	 * @return the telefone
	 */
	public Telefone getTelefone() {
		return telefone;
	}

	/**
	 * @param telefone the telefone to set
	 */
	public void setTelefone(Telefone telefone) {
		this.telefone = telefone;
	}

}
